Image processing apparatus and method

ABSTRACT

An apparatus for executing image processing by a plurality of serially connected image processing modules stores, in memory, set values for the plurality of image processing modules and image data to be processed by the plurality of image processing modules, adds headers to respective ones of the set values and image data that have been read out of the memory and transmits the result to a top image processing module among the plurality of image processing modules.

RELATED APPLICATION

This application is a continuation of application Ser. No. 12/234,746,filed Sep. 22, 2008. It claims benefit of that application under 35U.S.C. §120, and claims benefit under 35 U.S.C. §119 of Japanese PatentApplication No. 2007-264969, filed Oct. 10, 2007. The entire contents ofeach of the mentioned prior applications are incorporated herein byreference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processing apparatus andmethod.

2. Description of the Related Art

An image processing module generally has two types of interface, namelya CPU interface for setting a register and a data interface forinputting and outputting image data. In order for control to beperformed by the CPU interface, such an image processing module requiresexecution of the following sequence:

notifying the CPU of end of image processing by an interrupt after aseries of image processes ends; and

starting the next image processing operation after the setting of aregister for the purpose of the next process.

Further, in a case where a change in the CPU is accompanied by a changein the CPU interface, the image processing module must be re-fabricatedor the interface must be converted as by a wrapper.

In order to solve these problems, a method of putting data for setting aregister and image data to be processed in the form of commands andtransferring the commands on the same path has been proposed. The flowof processing according to this method will be described with referenceto FIG. 1.

FIG. 1 is a block diagram of an image processor for executing a seriesof image processing operations. Shown in FIG. 1 are a CPU 701; DMACs702, 706 for controlling DMA transfer; image processing modules 703 to705 (modules A to C); a memory controller 707; and a memory 708. A gammacorrection circuit and color conversion circuit, etc., can be mentionedas the image processing modules 703 to 705. “DMA” is the abbreviation of“Direct Memory Access”.

Before the start of image processing or in predetermined units ofprocessing, the CPU 701 generates a register command for reading andwriting from and to a register in each image processing module, or adata command containing pixel data.

FIGS. 2A and 2B illustrate specific examples of formats of thesecommands. As shown in FIG. 2A, the register command contains headerinformation, a register address and a register set value. The headerinformation includes a command identification bit, a module ID and aread/write identification bit. The command identification bit indicateswhether the command is a register command or a data command. Forexample, the command is a register command if the command identificationbit is “1” and is a data command, which is shown in FIG. 2B, if thecommand identification bit is “0”. The image processing modulesdetermine whether the command type is the register command or datacommand by referring to the command identification bit. The module IDindicates in which image processing module the register command will beset. By referring to the module ID, the image processing moduledetermines whether the received register command is for setting its ownregister. The read/write identification bit represents whether theregister command is a read or write command. For example, the registercommand is register write (register write command) if the read/writeidentification bit is “1” and register read (register read command) ifthe read/write identification bit is “0”.

On the other hand, as illustrated in FIG. 2B, the header information ofthe data command includes a command identification bit having a value of“0” indicative of the data command, and an image control signal such asa data-start bit and a data-end bit. The CPU 701 stores the createdcommand in memory 708.

Further, the CPU 701 also puts image data in the form of a command andstores it in the memory 708 as a data command. When a command in aprescribed unit of processing is stored in the memory 708, the CPU 701sets an access address, which is for accessing the memory 708, in theregisters of the DMACs 702 and 706 and starts operating.

The DMAC 702 reads in commands from the memory 708 successively andtransfers the commands to image processing module A. In a case where theimage processing module B (704) and image processing module C (705) havedetermined that an entered command is the register write command and,moreover, that the command is directed at itself as determined from themodule ID, a register setting is performed. When the accepted command isthe register read command, a value read from the target registerindicated by the register address is set as the register set value ofthe read command and is transferred to the next image processing module.When the received command is the data command, processing is executedusing this data, the result of processing is set in the data command andthe command is transferred to the next image processing module. The DMAC706 accepts the command that has been output from the image processingmodule C (705) and writes the command to the memory 708.

Thus, it is so arranged that setting of a register and data input can beset from the same port. This means that any sequence can be executedwithout a CPU interrupt. A further advantage is that even if there is achange in the CPU interface, no change whatsoever is required of theimage processing modules.

Further, Japanese Patent Application Laid-Open No. 10-011388 describes aDMA control apparatus having a controller for generating transfer-sourceand transfer-destination addresses in order to lighten the CPU load.

However, in a case where it is so arranged that header information otherthan a register set value and addresses are stored in the memory 708, alarge memory capacity and transmission band are required. As aconsequence, needless memory capacity and transmission band areconsumed. Further, in a case where it has been arranged to put imagedata in command form and store the command, the task of converting theimage data to a command is required of the CPU 701 and the load on theCPU is increased. Furthermore, the task relating to the conversion to acommand is not overcome even if the DMA control apparatus of JapanesePatent Application Laid-Open No. 10-011388 is applied.

SUMMARY OF THE INVENTION

An object of the present invention is to operate an image processingmodule with a memory having a small memory capacity and smalltransmission band.

Another object of the present invention is to alleviate CPU load.

A further object of the present invention is to provide an imageprocessing apparatus comprising: a plurality of serially connected imageprocessing units; a storage unit configured to store set values for theplurality of image processing units and image data to be processed bythe plurality of image processing units; and a transmission unitconfigured to add headers to respective ones of the set values and imagedata that have been read out of the storage unit and to transmit theresult to a top image processing unit among the plurality of imageprocessing units.

A further object of the present invention is to provide a method ofexecuting image processing by a plurality of serially connected imageprocessing modules, the method comprises: a storage step of storing, inmemory, set values for the plurality of image processing modules andimage data to be processed by the plurality of image processing modules;and a transmission step of adding headers to respective ones of the setvalues and image data that have been read out of the memory andtransmitting the result to a top image processing module among theplurality of image processing modules.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating the configuration of an imageprocessing apparatus;

FIGS. 2A and 2B are diagrams illustrating the formats of commandsaccording to an embodiment;

FIG. 3 is a block diagram illustrating the configuration of an imageprocessing apparatus according to an embodiment;

FIG. 4 is a diagram useful in describing register addresses of imageprocessing modules according to an embodiment;

FIG. 5A is a diagram illustrating storage by a CPU of register setvalues and pixel data in a memory;

FIG. 5B is a diagram illustrating storage of header informationnecessary in order to store register set values and pixel data, whichhave been transmitted from an image processing module, in a memory;

FIG. 6 is a flowchart illustrating command generation processing by acommand generating unit according to an embodiment;

FIG. 7 is a diagram illustrating a list of commands generated by acommand generating unit as well as the sequence of generation accordingto an embodiment;

FIG. 8 is a flowchart illustrating command decomposition processing by acommand decomposing unit according to an embodiment; and

FIG. 9 is a diagram illustrating storage in memory of register setvalues and pixel data that have been input from an image processingmodule.

DESCRIPTION OF THE EMBODIMENTS

Exemplary embodiments of the present invention will now be described indetail in accordance with the accompanying drawings.

FIG. 3 is a block diagram illustrating the configuration of an imageprocessing apparatus according to an embodiment. Shown in FIG. 3 are aCPU 101; DMACs 102, 106; image processing modules 103 to 105 (modules Ato C); a memory controller 107; a memory 108, a command generating unit109 and a command decomposing unit 110. Although FIG. 3 illustrates acase where there are three image processing modules, the number of imageprocessing modules may be four or more or two or less.

The CPU 101 stores register set values and image data in the memory 108.Register set values and image data will also be referred to genericallyas “data to be processed” below. The DMAC 102 reads the data to beprocessed out of the memory 108 by direct memory access. Using the readdata to be processed (register set values or image data), the commandgenerating unit 109 generates commands of the kind shown in FIGS. 2A and2B. The DMAC 102 transfers the command generated by the commandgenerating unit 109 to the image processing module A (103). The commandgenerating unit 109 within the DMAC 102 generates a command by addingcontrol information, which is for making the conversion to a command, toa register set value or image data that has been read out of the memory108.

As illustrated in FIG. 2A, control information for a register command iscomposed of header information and a register address. Controlinformation for a data command is composed of header information, asshown in FIG. 2B. The image processing module A (103), image processingmodule B (104) and image processing module C (105) execute prescribedprocessing in accordance with the command that is input thereto.Specifically, these image processing modules process the commands, whichare shown in FIGS. 2A, 2B, having a form in which the controlinformation has been added to the register set value or pixel data. Agamma correction circuit and color conversion circuit, etc., can bementioned as examples of such image processing modules.

Further, the DMAC 106 transfers a register set value and pixel data tothe memory controller 107 and writes these to the memory 108. Thecommand decomposing unit 110 within the DMAC 106 decomposes a commandthat has been received from the image processing module C (105) andgenerates a register set value or pixel data. That is, the DMAC 106functions as a second transmission unit for writing, to memory 108, aregister set value or pixel data extracted by the command decomposingunit 110 from a processed command that has been output from the imageprocessing module C (105).

Before a detailed description is given, the registers of an imageprocessing module in which a register setting in accordance with aregister command is to be made will be described. FIG. 4 is a diagramexplaining register configuration of the image processing modules.Assume that the ID of the image processing module A (103) is 1, that thestarting address of a register is SA1 and that the number of registersis N1. Similarly, assume that the ID of the image processing module B(104) is 2, that the starting address of a register is SA2 and that thenumber of registers is N2. Furthermore, assume that the ID of the imageprocessing module C (105) is 3, that the starting address of a registeris SA3 and that the number of registers is N3. Assume also that the datawidth of a register set value is 32 bits. In this embodiment, it isassumed that eight bits are allocated to one address.

Next, reference will be had to FIGS. 5A and 5B to describe the manner inwhich data necessary for generating a command is stored in the memory108 by the CPU 101. In a case where a register set value is stored inthe memory 108, header information is stored first before the registerset value is stored. Specifically, as indicated at MSA0, MSA0+4(N1+1), .. . in FIG. 5A, 32-bit control information is stored as the headerinformation and contains the following:

-   -   module ID from the 31^(st) bit to the 26^(th) bit;•a read/write        bit at the 25^(th) bit (the command is assumed to be a write        command when this bit is “1” and a read command when this bit is        “0”);    -   number of registers from the 24^(th) bit to the 16^(th) bit; and        top address of the register from the 15^(th) bit to the 0^(th)        bit.

Register set values, which are data to be processed in the imageprocessing module, are stored from the next memory address and thenumber thereof is equivalent to the number of registers mentioned above.

On the other hand, in a case where pixel data is stored, 32-bit controlinformation is stored as the header information, as indicated at memoryaddress MSA0+4(N1+N2+N3+3), and contains the following:

-   -   0 as module ID from the 31^(st) bit to the 26^(th) bit; and    -   number of input pixels from the 25^(th) bit to the 0^(th) bit.

Pixel data, which is data to be processed in the image processingmodule, is stored from the next memory address and the number of itemsthereof is equivalent to the number of pixels.

Thus, as illustrated in FIG. 5A, data used in generating controlinformation for converting data to a command and data to be processedand that is to be transferred are stored in continuous address space ofmemory 108 such as at MSA0 to MSA0+4*(N1). Continuous address space inmemory for storing data used in generating control information and datato be processed and that is to be transferred, such as indicated in FIG.5A, will also be referred to as a “first address space” below.

Next, the CPU 101 stores header information in the memory 108. Theheader information is necessary in order to store data read out of theimage processing module C (105) by the DMAC 106 in the memory 108. Thatis, in a case where register set values are stored, the following arestored as indicated at memory addresses MSA1, MSA1+4(N1+1), . . . inFIG. 5B:

-   -   module ID from the 31^(st) bit to the 26^(th) bit; and    -   number of registers from the 24^(th) bit to the 16^(th) bit.

On the other hand, in a case where pixel data are stored, the followingare stored as indicated at memory addresses MSA1+4(N1+N2+N3+3) in FIG.5B:

-   -   0 as module ID from the 31^(st) bit to the 26^(th) bit; and    -   number of input pixels from the 25^(th) bit to the 0^(th) bit.

Further, as illustrated in FIG. 5B, a continuous address space forstoring the register and pixel data in the numbers indicated by thecontrol data is reserved following the address storing the headerinformation.

Thus, data indicating the data amount of register set values or pixeldata to be stored successively is stored over a prescribed address rangeat the beginning of the continuous address space of memory 108. A memoryarea having a size corresponding to this data amount is reservedfollowing the prescribed address range within the continuous addressspace. It should be noted that this continuous address space in thememory will also be referred to as a “second address space” below.

Next, the CPU 101 sets memory address MSA0 in the register of DMAC 102and sets memory address MSA1 in the register of DMAC 106. Thus, the CPU101 functions as a first storage unit that stores data forcontrol-information generation in a prescribed address range at thebeginning of the first address space of memory 108 and that stores datato be processed in an area that follows the prescribed address range.The CPU 101 sets the top address MSA0 of the first address space in theDMAC 102 as the starting address of direct memory access. Further, theCPU 101 functions as a second storage unit that stores controlinformation, which indicates the data amount to be stored from nowonward, in a prescribed address range at the beginning of the secondaddress space of memory 108, and that reserves a area corresponding tothe above-mentioned data amount following the prescribed address rangeof the second address space. The CPU 101 sets a top address MSA1 of thesecond address space in the DMAC 106 as the starting address of directmemory access.

After operation starts, the DMAC 102 sets the memory address MSA0, whichhas been set in the register, in an address counter within the DMAC 102.Owing to such processing, the DMAC 102 reads the data to be processedout of the first address space of memory 108 successively by directmemory access. The command generating unit 109 adds control informationonto the data to be processed that has been read out, thereby generatinga command capable of being processed by an image processing module, andtransmits the command to the image processing module A (103). That is,the DMAC 102 and command generating unit 109 construct a firsttransmission unit for converting the data to be processed, which hasbeen read out out of the memory 108, to a command and transmitting thecommand to the image processing module A (103).

Next, processing for generating a command by the command generating unit109 within the DMAC 102 will be described in detail with reference tothe flowchart shown in FIG. 6.

In FIG. 6, the DMAC 102 starts register setting processing (step S401).The DMAC 102 then reads data from a memory address of memory 108indicated by the address counter and stores this data in a register (notshown) possessed by the DMAC 102 (step S402). As a result of thisprocessing, header information is stored in the register of the DMAC102. The address counter is then incremented (step S403).

Next, the command generating unit 109 determines whether the module IDin the header information stored in the register at step S402 is 0 ornot (step S404). If the module ID is not 0, then the command generatingunit 109 decides that the command is a register command (FIG. 2A). Inthis case, the data that has been read out of the memory 108 is moduleID, value of the read/write identification bit, number of registers andregister address. Accordingly, the command generating unit 109 storesthe module ID, the value of the read/write identification bit, thenumber of registers and the register address in its own register (stepS405).

Next, the command generating unit 109 determines whether the subsequentprocessing (steps S407 to S410) has been executed a stipulated number oftimes (step S406). In this embodiment, the data of one register is 32bits (FIG. 5A) and four addresses are necessary. Therefore, 4×(number ofregisters stored at step S405) is the stipulated number. If the numberof processing cycles has reached the stipulated number, the processingaccording to this flowchart is exited (step S416). If the number ofprocessing cycles has not reached the stipulated number, on the otherhand, then the command generating unit 109 reads data (a register setvalue) from the memory address of memory 108 indicated by the addresscounter (step S407). The command generating unit 109 then generates aregister command having the format of FIG. 2A using the module ID,read/write bit value and register address stored at step S405 (stepS408). The command generating unit 109 then increments the registeraddress (step S409) and increments the address counter (step S410).Processing then returns to step S406.

As mentioned above, the control information added onto a register setvalue includes the register address of the storage location of thisregister set value in the image processing module. Accordingly, when thefirst command is generated, the command generating unit 109 decides thefirst register address based upon the control data (steps S405, S408).With regard to register addresses of commands from the second onward,use is made of a value obtained by adding a prescribed value to theregister address included in the control information of the immediatelypreceding command (step S409).

On the other hand, if it is determined at step S404 that the module IDis 0, then the command generating unit 109 acquires the number of pixelsas a data command from the applicable header information and stores thenumber in its own register (step S411). Next, the command generatingunit 109 determines whether the subsequent processing (steps S413 toS415) has been executed a stipulated number of times (step S412). Herethe stipulated number is a value obtained by dividing “number of pixels”by “number of pixels stored at one address”, by way of example. In thisembodiment, since one pixel has 48 bits, as shown in FIG. 5B, sixaddresses are necessary and 6×(number of pixels stored at step S411) isthe stipulated number. The command generating unit 109 ends processingif the stipulated number is attained (step S416).

In a case where it is determined at step S412 that the stipulated numberhas not been attained, the command generating unit 109 then reads datafrom the memory address indicated by the address counter (step S413) andgenerates a data command having the format of FIG. 2B (step S414). Itshould be noted that in the creation of the command at step S414, thecommand generating unit 109 refers to the number of times the loop atstep S412 is executed, sets the data-start bit to “1” at creation of thedata command of the initial pixel and sets the data-start bit to “0”with respect to data commands of other pixels. Further, with respect tothe data command of the final pixel, the command generating unit 109sets data end to “1” and sets data end to “0” with respect to datacommands of other pixels. Next, the command generating unit 109increments the address counter (step S415). Control then returns to stepS412.

An example of commands generated by the above-described processing isillustrated in FIG. 7. The order in which commands are generated andtransmitted is indicated by the arrow in FIG. 7. Headers 1 to 3 areheaders for register commands (FIG. 2A), and “1” is stored as thecommand identification bit. Further, values 1, 2, 3 are stored as moduleIDs of the headers 1 to 3, and “1” indicative of “write” is stored asthe read/write identification bit. Here it is assumed that the CPU 101has stored “1”, indicative of “write”, in a storage area of theread/write identification bit of memory 108 in order to perform theregister setting. Further, header (DS), header (D) and header (DE)represent the headers of the respective data commands, and “0” has beenstored as the command identification bit. Further, as flags for datacontrol, data start=“1” and data end=“0” have been stored in the header(DS), data start=“0” and data end=“0” have been stored in the header(D), and data start=“0” and data end=“1” have been stored in the header(DE).

As mentioned above, on the basis of the data that has been stored in theprescribed address range at the beginning of the first address space,the command generating unit 109 generates control information forchanging a register set value or pixel data within the first addressspace to a command. By adding data to be processed, which has been readout from the prescribed address range onward in the first address space,onto the control information, the command generating unit 109 convertsthe data to a command and transmits the command to the image processingmodule A (103).

The generated command is transmitted to the image processing module A(103), passes through all of the image processing modules and theregister setting is performed.

After operation of the DMAC 106 starts, the memory address MSA1 set inthe register beforehand is set in the address counter within the DMAC106.

Next, the command decomposing unit 110 within the DMAC 106 executescommand decomposing processing. This processing will be described withreference to the flowchart of FIG. 8.

In FIG. 8, the command decomposing unit 110 within the DMAC 106 startscommand decomposing processing (step S901), reads data from the memoryaddress of memory 108 indicated by the address counter and stores thisdata in its own register (not shown) (step S902). Here the data read outand stored is the header information at address MSA1 shown in FIG. 5B.Next, the command decomposing unit 110 increments the address counter(step S903).

Next, the command decomposing unit 110 determines whether the module IDof the header information stored at step S902 is 0 (step S904). If themodule ID is not 0, the command decomposing unit 110 determines whetherthis header information relates to a register command. The commanddecomposing unit 110 then reads out the value represented by the 16^(th)to 24^(th) bits of the header information of the module ID stored in thememory 108 of FIG. 5B and stores the value in the register of the DMAC106 as the number of registers (step S905). Next, the commanddecomposing unit 110 determines whether the subsequent processing (stepsS907 and S908) has been executed a stipulated number of times (stepS906). The stipulated number is similar to that described at step S406.If the number of processing cycles has reached the stipulated number,the processing according to this flowchart is exited (step S913). If thenumber of processing cycles has not reached the stipulated number, thecommand decomposing unit 110 continues processing. That is, the commanddecomposing unit 110 receives the command from the image processingmodule C (105) and stores the register set value within this command atthe memory address indicated by the address counter (step S907). Thecommand decomposing unit 110 then increments the address counter (stepS908) and processing returns to step S906.

On the other hand, if it is determined at step S904 that the module IDis 0, then the command decomposing unit 110 stores the value that hasbeen recorded at bits 0 to 25 of the applicable header informationstored in memory 108 shown in FIG. 5B in the register of the DMAC 106 asthe number of pixels.

Next, the command decomposing unit 110 determines whether the subsequentprocessing (steps S911 and S912) has been executed a stipulated numberof times (step S910). The stipulated number is similar to that describedat step S412. If the number of processing cycles has reached thestipulated number, the processing according to this flowchart is exited(step S913). If the number of processing cycles has not reached thestipulated number, then the command decomposing unit 110 receives thecommand from the image processing module C (105) and stores the pixeldata within this command at the memory address of memory 108 indicatedby the address counter. The command decomposing unit 110 then incrementsthe address counter (step S912) and processing returns to step S910.

Thus, the DMAC 106 and the command decomposing unit 110 extract datafrom commands output successively from the image processing module C(105) and store the data successively in the second address space ofmemory 108. The extraction and storing processing is repeated a numberof times decided based upon the data amount (number of registers andnumber of pixels) acquired at step S905 or step S909.

FIG. 9 illustrates how register set values and image data have beenstored in memory 108 by the above-described processing. Specifically,register set values and pixel data of commands received from the imageprocessing module C (105) are stored in the address space of memory 108,which has been prepared as shown in FIG. 5B, by the DMAC 106 in themanner illustrated in FIG. 9.

By thus adopting an arrangement in which the DMAC 102 performs commandgeneration and the DMAC 106 performs command decomposition, there is nolonger redundant data such as header information stored in a case wherecommands are stored in memory. As a result, it is possible to reducememory capacity and the transmission band between the DMAC and memory.Further, there is no longer any load upon the CPU 101 in terms ofconverting register set values and pixel data to commands.

The present invention includes cases where the object of the inventionis attained also by supplying a software program directly or remotely toa system or apparatus, reading the supplied program codes with acomputer of the system or apparatus, and then executing the programcodes. In this case, the program supplied is a program corresponding tothe flowcharts illustrated in the drawings of the embodiment.

Accordingly, since the functional processing of the present invention isimplemented by computer, the program codes per se installed in thecomputer also implement the present invention. In other words, thepresent invention also covers a computer program that is for the purposeof implementing the functional processing of the present invention.

In this case, so long as the system or apparatus has the functions ofthe program, the form of the program, e.g., object code, a programexecuted by an interpreter or script data supplied to an operatingsystem, etc., does not matter.

Examples of recording media for supplying the program are a flexibledisk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R,CD-RW, magnetic tape, non-volatile type memory card, ROM, DVD (DVD-ROM,DVD-R), etc.

As for the method of supplying the program, a client computer can beconnected to a website on the Internet using a browser possessed by theclient computer, and the computer program of the present invention canbe downloaded to a recording medium such as a hard disk. In this case,the program downloaded may be a file that is compressed and contains anautomatic installation function. Further, implementation is possible bydividing the program codes constituting the program of the presentinvention into a plurality of files and downloading the files fromdifferent websites. In other words, a WWW server that downloads, tomultiple users, the program files that implement the functionalprocessing of the present invention by computer also is included in thepresent invention.

Further, it is also possible to encrypt and store the program of thepresent invention on a storage medium such as a CD-ROM and distributethe storage medium to users. In this case, users who meet certainrequirements are allowed to download decryption key information from awebsite via the Internet, the program decrypted using this keyinformation can be executed and the program can be installed on acomputer.

Further, besides implementing the functions of the embodiment byexecuting a read program using a computer, the functions of theembodiment may be implemented in cooperation with an operating systemrunning on a computer, based upon commands from the program. In thiscase, the operating system, etc., executes some or all of the functionsof actual processing and the functions of the above-described embodimentare implemented by this processing.

Furthermore, a program that has been read from a recording medium may bewritten to a memory provided on a function expansion board inserted intothe computer or provided in a function expansion unit connected to thecomputer, and some or all of the functions of the embodiment may beimplemented. In this case, after the program has been written to thefunction expansion board or function expansion unit, a CPU or the likeprovided on the function expansion board or function expansion unitperforms some or all of the actual processing based upon the indicationsin the program.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

What is claimed is:
 1. An image processing apparatus comprising: aplurality of image processing units; a storage unit for storing setvalues for said plurality of image processing units and image data to beprocessed by said plurality of image processing units; a firsttransmission unit configured to read the set values and image data outof first address space of said storage unit using direct memory access,to add headers to the respective set values and image data that havebeen read out, and to transmit the result to one of said plurality ofimage processing units; and a second transmission unit configured toextract image data processed by at least one of the plurality of imageprocessing units from output of said plurality of image processingunits, and to transmit the extracted image data to second address spaceof said storage unit.
 2. The apparatus according to claim 1, whereineach of said plurality of image processing units has a memory unit forstoring a plurality of set values, said storage unit stores topaddresses of the respective memory units of said plurality of imageprocessing units and a plurality of set values to be stored in therespective memory units, said first transmission unit comprises ageneration unit which, based upon the top addresses of the respectivememory units read out of said storage unit, generates addresses at whichthe respective plurality of set values read out of the first addressspace of said storage unit are to be stored, and said first transmissionunit adds headers, which include the addresses generated by saidgeneration unit, to the respective plurality of set values read out ofthe first address space of said storage unit and transmits the result toa top image processing unit.
 3. The apparatus according to claim 1,wherein each of said plurality of image processing units has a memoryunit for storing a plurality of set values, said storage unit stores anumber of set values to be stored in said respective plurality of imageprocessing units, and said first transmission unit reads set values, thenumber of which has been stored in said storage unit, out of the firstaddress space of said storage unit.
 4. The apparatus according to claim1, wherein said storage unit stores the amount of image data, and saidfirst transmission unit reads the image data out of the first addressspace of said storage unit upon splitting the read operation a number oftimes conforming to the amount of data read out of the first addressspace of said storage unit.
 5. An image processing apparatus comprising:a plurality of image processing units; a storage unit for storing setvalues for said plurality of image processing units and image data to beprocessed by said plurality of image processing units in first addressspace; and a transmission unit configured to extract image dataprocessed by at least one of said plurality of image processing unitsfrom output of said plurality of image processing units, and to transmitthe extracted image data to second address space of said storage unit.6. An image processing apparatus comprising: a plurality of imageprocessing units; a storage unit for storing set values for saidplurality of image processing units and image data to be processed bysaid plurality of image processing units in first address space and forstoring processed data in second address space; and a first transmissionunit configured to read the set values and image data out of firstaddress space of said storage unit using direct memory access, and toadd headers to the respective set values and image data that have beenread out.
 7. A method of executing image processing by a plurality ofimage processing modules, the method comprising: a storage step ofstoring, in memory, set values for the plurality of image processingmodules and image data to be processed by the plurality of imageprocessing modules; a first transmission step of reading the set valuesand image data out of first address space of the memory using directmemory access, adding headers to the respective set values and imagedata that have been read out, and transmitting the result to one of theplurality of image processing modules; and a second transmission step ofextracting the image data processed by at least one of the plurality ofimage processing modules from output of the plurality of imageprocessing modules, and transmitting the extracted image data to secondaddress space of the memory.
 8. The method according to claim 7, whereineach of the plurality of image processing modules has a register forstoring a plurality of set values, said storage step includes storing,in memory, top addresses of the respective registers of the plurality ofimage processing modules and a plurality of set values to be stored inthe respective registers, said first transmission step comprises ageneration step which, based upon the top addresses of the respectiveregisters read out of the memory, generates addresses at which therespective plurality of set values read out of the first address spaceof the memory are to be stored, and said first transmission stepincludes adding headers, which include the addresses generated in saidgeneration step, to the respective plurality of set values read out ofthe first address space of the memory and transmitting the result to atop image processing module.
 9. The method according to claim 7, whereineach of the plurality of image processing modules has a register unitfor storing a plurality of set values, said storage step includesstoring a number of set values to be stored in the respective pluralityof image processing modules, and said first transmission step includesreading set values, the number of which has been stored in the memory,out of the first address space of the memory.
 10. The method accordingto claim 7, wherein said storage step includes storing the amount ofimage data in the memory, and said first transmission step includesreading the image data out of the first address space of the memory uponsplitting the read operation a number of times conforming to the amountof data read out of the first address space of the memory.
 11. A methodof executing image processing by a plurality of image processingmodules, the method comprising: a storage step of storing, in a memory,set values for the plurality of image processing modules and image datato be processed by said plurality of image processing modules in firstaddress space; and a transmission step of extracting image dataprocessed by at least one of the plurality of image processing modulesfrom output of the plurality of image processing modules, andtransmitting the extracted image data to second address space of thememory.
 12. A method of executing image processing by a plurality ofimage processing modules, the method comprising: a storage step ofstoring, in a memory, set values for the plurality of image processingmodules and image data to be processed by the plurality of imageprocessing modules in first address space and storing processed data insecond address space; and a first transmission step of reading the setvalues and image data out of the first address space of the memory usingdirect memory access, and adding headers to the respective set valuesand image data that have been read out.